/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package REA.util;

import REA.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see REA.REAPackage
 * @generated
 */
public class REAAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static REAPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public REAAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = REAPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected REASwitch<Adapter> modelSwitch =
		new REASwitch<Adapter>() {
			@Override
			public Adapter caseEconomicResource(EconomicResource object) {
				return createEconomicResourceAdapter();
			}
			@Override
			public Adapter caseEconomicEvent(EconomicEvent object) {
				return createEconomicEventAdapter();
			}
			@Override
			public Adapter caseEconomicAgent(EconomicAgent object) {
				return createEconomicAgentAdapter();
			}
			@Override
			public Adapter casestockflow(stockflow object) {
				return createstockflowAdapter();
			}
			@Override
			public Adapter caseparticipation(participation object) {
				return createparticipationAdapter();
			}
			@Override
			public Adapter caseREAOperationalEntity(REAOperationalEntity object) {
				return createREAOperationalEntityAdapter();
			}
			@Override
			public Adapter caseCommitment(Commitment object) {
				return createCommitmentAdapter();
			}
			@Override
			public Adapter casefulfillment(fulfillment object) {
				return createfulfillmentAdapter();
			}
			@Override
			public Adapter caseREARelations(REARelations object) {
				return createREARelationsAdapter();
			}
			@Override
			public Adapter caseduality(duality object) {
				return createdualityAdapter();
			}
			@Override
			public Adapter caseREAAttribute(REAAttribute object) {
				return createREAAttributeAdapter();
			}
			@Override
			public Adapter caseREAPolicyRelation(REAPolicyRelation object) {
				return createREAPolicyRelationAdapter();
			}
			@Override
			public Adapter caseREAPolicyEntity(REAPolicyEntity object) {
				return createREAPolicyEntityAdapter();
			}
			@Override
			public Adapter caseREAmodel(REAmodel object) {
				return createREAmodelAdapter();
			}
			@Override
			public Adapter caseREAelement(REAelement object) {
				return createREAelementAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link REA.EconomicResource <em>Economic Resource</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.EconomicResource
	 * @generated
	 */
	public Adapter createEconomicResourceAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.EconomicEvent <em>Economic Event</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.EconomicEvent
	 * @generated
	 */
	public Adapter createEconomicEventAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.EconomicAgent <em>Economic Agent</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.EconomicAgent
	 * @generated
	 */
	public Adapter createEconomicAgentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.stockflow <em>stockflow</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.stockflow
	 * @generated
	 */
	public Adapter createstockflowAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.participation <em>participation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.participation
	 * @generated
	 */
	public Adapter createparticipationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAOperationalEntity <em>Operational Entity</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAOperationalEntity
	 * @generated
	 */
	public Adapter createREAOperationalEntityAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.Commitment <em>Commitment</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.Commitment
	 * @generated
	 */
	public Adapter createCommitmentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.fulfillment <em>fulfillment</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.fulfillment
	 * @generated
	 */
	public Adapter createfulfillmentAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REARelations <em>Relations</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REARelations
	 * @generated
	 */
	public Adapter createREARelationsAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.duality <em>duality</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.duality
	 * @generated
	 */
	public Adapter createdualityAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAAttribute <em>Attribute</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAAttribute
	 * @generated
	 */
	public Adapter createREAAttributeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAPolicyRelation <em>Policy Relation</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAPolicyRelation
	 * @generated
	 */
	public Adapter createREAPolicyRelationAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAPolicyEntity <em>Policy Entity</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAPolicyEntity
	 * @generated
	 */
	public Adapter createREAPolicyEntityAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAmodel <em>RE Amodel</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAmodel
	 * @generated
	 */
	public Adapter createREAmodelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link REA.REAelement <em>RE Aelement</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see REA.REAelement
	 * @generated
	 */
	public Adapter createREAelementAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //REAAdapterFactory
